package home;

import java.util.List;

import persistencia.DbMongo;

import com.mongodb.BasicDBList;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;

import modelo.tp6.Comentario;
import modelo.tp6.UsuarioComentarista;
import modelo.tp6.Visibilidad;

public class HomePersistenciaMongoDB {
	
	

	public void crearUsuario(UsuarioComentarista usuario){
		DB db = DbMongo.getInstance().getDb();
		DBCollection nuevaColeccion = db.getCollection("usuarios");
		BasicDBObject basic = new BasicDBObject();
		basic.put("nombre_usuario", usuario.getNombre_usuario());
		basic.put("comentarios", this.anadirLista(usuario));
		
		nuevaColeccion.insert(basic);
		
		DBCursor cursor = nuevaColeccion.find(basic);
		while(cursor.hasNext()){
			System.out.println(cursor.next());
		}
	}
	
	public BasicDBList anadirLista(UsuarioComentarista usuario2){
		BasicDBList listaEnDocumento = new BasicDBList();
		List<Comentario> comentarios = usuario2.getListaComentarios();
		
		for(int i = 0; i < comentarios.size(); i++){
			String comentario = comentarios.get(i).getComentario();
			String destino = comentarios.get(i).getDestino();
			Visibilidad visibilidad = comentarios.get(i).getVisibilidad();
			DBObject db_obj = new BasicDBObject();
			db_obj.put("comentario" , comentario);
			db_obj.put("destino", destino);
			db_obj.put("visibilidad",visibilidad);
			listaEnDocumento.add(db_obj);
		}
		return listaEnDocumento;
	}
	
	public void verPerfilPublicoDe(String usuario1, String usuario2){
		DB bbdd = DbMongo.getInstance().getDb();
		DBCollection col = bbdd.getCollection("usuarios");
		
		BasicDBObject el1 = new BasicDBObject();
		el1.put("nombre_usuario", usuario1);
		el1.put("nombre_usuario", usuario2);
		
		String comentarios = "";
		
		DBCursor cursor1 = col.find(el1);
		
		UsuarioComentarista usuarioComentarista1 = (UsuarioComentarista) cursor1.next();
		UsuarioComentarista usuarioComentarista2 = (UsuarioComentarista) cursor1.next();
		
//		for(Comentario comentario : usuarioComentarista2.getListaComentarios()){
//			comentarios = comentarios + comentario.getComentario();
//		}
	}
}
